Fix check/radio indicator drawing mess (bug #452225):
authorMichael Natterer <mitch@imendio.com>
Fri, 27 Jul 2007 12:11:07 +0000 (12:11 +0000)
committerMichael Natterer <mitch@src.gnome.org>
Fri, 27 Jul 2007 12:11:07 +0000 (12:11 +0000)
2007-07-27  Michael Natterer  <mitch@imendio.com>

Fix check/radio indicator drawing mess (bug #452225):

* gtk/gtkstyle.c (gtk_default_draw_check): really decrease the
indicator size by one to ensure odd size (don't say -= -1).

* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
removed -1 adjustment from calls to gtk_paint_option(). Theme
engines now get the actually configured size passed, not one pixel
less.

* gtk/gtkcellrenderertoggle.c
* gtk/gtkcheckmenuitem.c: changed default indicator size from 12
to 13 so all widgets which draw check/option indicators have the
same default size now (and render the same size after above
changes).

* README.in: mention above changes in the release notes.

svn path=/trunk/; revision=18547

ChangeLog
README.in
gtk/gtkcellrenderertoggle.c
gtk/gtkcheckmenuitem.c
gtk/gtkstyle.c

index 00390a861766e05623f16cc18ddc2fd58e84d37a..862df00e3c65eeaa840c9d9959e98c67827378ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2007-07-27  Michael Natterer  <mitch@imendio.com>
+
+       Fix check/radio indicator drawing mess (bug #452225):
+
+       * gtk/gtkstyle.c (gtk_default_draw_check): really decrease the
+       indicator size by one to ensure odd size (don't say -= -1).
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+       removed -1 adjustment from calls to gtk_paint_option(). Theme
+       engines now get the actually configured size passed, not one pixel
+       less.
+
+       * gtk/gtkcellrenderertoggle.c
+       * gtk/gtkcheckmenuitem.c: changed default indicator size from 12
+       to 13 so all widgets which draw check/option indicators have the
+       same default size now (and render the same size after above
+       changes).
+
+       * README.in: mention above changes in the release notes.
+
 2007-07-27  Wouter Bolsterlee  <wbolster@svn.gnome.org>
 
        * Makefile.am: Include ChangeLog.pre-2-10 in tarballs as
index cc360201159a6c04de70aeaaed33fc32203ab5f1..bca64bae7bc8804805329ff588d65a75e5925311 100644 (file)
--- a/README.in
+++ b/README.in
@@ -117,6 +117,19 @@ Release notes for 2.12
 * gtk_menu_item_remove_submenu() has been deprecated in favour of
   gtk_menu_item_set_submenu (..., NULL).
 
+* gtk_default_draw_check() has been fixed to really decrease the
+  indicator size by one pixel to ensure an odd size instead of
+  accidentially increasing it.
+  Consequently, gtk_cell_renderer_toggle_render() could be fixed to
+  not subtract 1 from the size passed to gtk_paint_option(), which
+  was just a workaround for above off-by-two for even sizes (theme
+  engines now get the real indicator size passed).
+  The default toggle size of GtkCheckMenuItem and GtkCellRendererToggle
+  has been changed to 13 to be consistent with GtkCheckButton.
+  The only visible change with default settings is that the indicator in
+  GtkCellRendererToggle has changed its size from 11 to 13 and is now
+  consistent with menus and toggle buttons.
+
 
 Release notes for 2.10
 ======================
index 24f45a7761fffc7d55cc2db4df06a469f61fab93..130db9f319319c704e99df44accf91735987e36a 100644 (file)
@@ -71,7 +71,7 @@ enum {
   PROP_INDICATOR_SIZE
 };
 
-#define TOGGLE_WIDTH 12
+#define TOGGLE_WIDTH 13
 
 static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
 
@@ -376,7 +376,7 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer      *cell,
                         expose_area, widget, "cellradio",
                         cell_area->x + x_offset + cell->xpad,
                         cell_area->y + y_offset + cell->ypad,
-                        width - 1, height - 1);
+                        width, height);
     }
   else
     {
@@ -386,7 +386,7 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer      *cell,
                        expose_area, widget, "cellcheck",
                        cell_area->x + x_offset + cell->xpad,
                        cell_area->y + y_offset + cell->ypad,
-                       width - 1, height - 1);
+                       width, height);
     }
 }
 
index 4f631852c69ad5b26811925c799c395606f31532..dc4323119218203b9ce745cb05b9c7d3dc7f0de8 100644 (file)
@@ -112,7 +112,7 @@ gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
                                                              P_("Size of check or radio indicator"),
                                                              0,
                                                              G_MAXINT,
-                                                             12,
+                                                             13,
                                                              GTK_PARAM_READABLE));
 
   widget_class->expose_event = gtk_check_menu_item_expose;
index 7854778991d3197b4bccae3364e7b1b9421caff3..d841fc1c9f83bdb7a2ac0cf6a9dfc2cb5133c974 100644 (file)
@@ -3645,7 +3645,7 @@ gtk_default_draw_check (GtkStyle      *style,
   
   exterior_size = MIN (width, height);
   if (exterior_size % 2 == 0) /* Ensure odd */
-    exterior_size -= -1;
+    exterior_size -= 1;
 
   pad = style->xthickness + MAX (1, (exterior_size - 2 * style->xthickness) / 9);
   interior_size = MAX (1, exterior_size - 2 * pad);
@@ -3768,7 +3768,7 @@ gtk_default_draw_option (GtkStyle      *style,
   
   exterior_size = MIN (width, height);
   if (exterior_size % 2 == 0) /* Ensure odd */
-    exterior_size -= -1;
+    exterior_size -= 1;
   
   x -= (1 + exterior_size - width) / 2;
   y -= (1 + exterior_size - height) / 2;